public class TranslateNum {
    /**
     * 给定一个数字，我们按照如下规则把它翻译为字符串：
     * 0 翻译成 “a” ，1 翻译成 “b”，……，11 翻译成 “l”，……，25 翻译成 “z”。
     * 一个数字可能有多个翻译。
     * 请编程实现一个函数，用来计算一个数字有多少种不同的翻译方法。
     * @param num
     * @return
     */
    public static int translateNum(int num) {
        String s = String.valueOf(num);
        if (s.length()==1)
            return 1;
        if (s.length()==2){
            if (num<=25)
                return 2;
            else
                return 1;
        }
        if (s.charAt(0)=='1'){
                return translateNum(Integer.valueOf(s.substring(1,s.length())))
                        +translateNum(Integer.valueOf(s.substring(2,s.length())));

        }
        else if (s.charAt(0)=='2'){
            if (s.charAt(1)<='5'){
                return translateNum(Integer.valueOf(s.substring(1,s.length())))
                        +translateNum(Integer.valueOf(s.substring(2,s.length())));
            }
            else {
                return translateNum(Integer.valueOf(s.substring(1,s.length())));
            }

        }
        else {
            return translateNum(Integer.valueOf(s.substring(1,s.length())));
        }

    }

    public static void main(String[] args) {
        System.out.println(translateNum(18580));

    }
}
